package com.zxw.xml.annotation;

import java.lang.annotation.*;

/**
 * @author zhangxuewei
 * @description 对象属性的标签别名注解
 * @date 2023/7/6 17:09
 */
@Target({ElementType.TYPE,ElementType.FIELD})//@Target其中参数类型是ElementType[]数组，其中ElementType是枚举类型
@Retention(RetentionPolicy.RUNTIME)//@Retention 表明该注解的生命周期,其中RetentionPolicy 是枚举类型
@Documented//表明该注解标记的元素可以被Javadoc 或类似的工具文档化
public @interface XmlTagName {
    String tagName() default "";// 标签名称

    /**
     * 如果属性为List，需要在集合对象追加标签名称，使用这个属性
     *
     * 使用样例
     *  public class SyncNcRecSettleBIillVO {
     *     @XmlTagName(tagName = "items", arrayObjTagName = "item")
     *     private List<RecSettleBIillDetail> items;
     *     ....
     *  }
     *
     *  <items>
     *       <item>
     *          <billdetail_no></billdetail_no>
     *          <memo></memo>
     *          <pk_account></pk_account>
     *       </item>
     *       <item>
     *          <billdetail_no></billdetail_no>
     *          <memo></memo>
     *          <pk_account></pk_account>
     *        </item>
     *  </items>
     * @return
     */
    String arrayObjTagName() default "";
}
